Clickhouse系列之整合MongoDB数据源 |
您所在的位置:网站首页 › clickhouse 159报错 › Clickhouse系列之整合MongoDB数据源 |
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第15天,点击查看活动详情 前言在实际应用中,Mongodb是用的挺多的,有可能我们在掘金写的文章就是Mongodb做存储。那我们先来了解下什么是Mongodb?我们先来看看官网给的一个简单介绍: A record in MongoDB is a document, which is a data structure composed of field and value pairs. MongoDB documents are similar to JSON objects. The values of fields may include other documents, arrays, and arrays of documents. 复制代码从这个英文介绍我们可以知道: MongoDB将数据存储为文档,数据结构由键值(key=>value)对组成; MongoDB文档类似于JSON对象。字段值可以包含其他文档、数组和文档数组当然除了这些,mongodb还有其他的特点: MongoDB是用C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载情况下,添加更多节点可以确保服务器性能。 MongoDB旨在为web应用程序提供可扩展的高性能数据存储解决方案。现在我们粗略了解到了Mongodb,现在问题来了,Mongdb这么好,为什么还需要将其数据整合进Clickhouse中呢? 正文其他数据源整合进Clickhouse,其实是为了业务的分离,Mongodb的存储是属于业务数据,而Clickhouse属于大数据部分,它不应该直接去操作Mongodb,否则在业务层也无法实现低内聚,高耦合的一个效果。 Mongodb引擎简介MongoDB引擎是只读表引擎,允许从远程MongoDB集合读取数据(SELECT查询)。引擎仅支持非嵌套数据类型。不支持INSERT查询。 建表详情 CREATE TABLE [IF NOT EXISTS] [db.]table_name ( name1 [type1], name2 [type2], ... ) ENGINE = MongoDB(host:port, database, collection, user, password [, options]); 复制代码引擎参数介绍: host:port—MongoDB服务器地址。 database—MongoDB数据库名称。 collection-MongoDB集合名称。 user—MongoDB用户。 password—用户密码。 options-MongoDB连接字符串选项(可选参数) 案例实操a) Mongodb创建数据 # 创建表 db.createCollection('simple_table'); # 插入数据 db.user.insert({_id:5,name:'zhaos'}); 复制代码b) Clickhouse创建Mongodb引擎表 CREATE TABLE mongo_table ( key UInt64, data String ) ENGINE = MongoDB('mongo1:27017', 'test', 'simple_table', 'testuser', 'clickhouse'); 复制代码c) 查询测试 SELECT COUNT() FROM mongo_table; 复制代码 总结本节主要讲解了什么是Mongodb,以及mongo的特点,其次解释了对于为何需要将Mongo和Clickhouse结合的原因,这不仅是业务层面,也是架构层面的考虑。最后我们对于创建Mongodb引擎的参数的一个详解,同时进行了一次实操测试。【欢迎大家留言讨论并关注!!!你们的支持是我创作前进的动力。】 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |